<?xml version="1.0" encoding="ascii"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
          "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>Class Hierarchy</title>
  <link rel="stylesheet" href="epydoc.css" type="text/css" />
  <script type="text/javascript" src="epydoc.js"></script>
</head>

<body bgcolor="white" text="black" link="blue" vlink="#204080"
      alink="#204080">
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="simvoc-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th bgcolor="#70b0f0" class="navbar-select"
          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            >SimVOC</th>
          </tr></table></th>
  </tr>
</table>
<table width="100%" cellpadding="0" cellspacing="0">
  <tr valign="top">
    <td width="100%">&nbsp;</td>
    <td>
      <table cellpadding="0" cellspacing="0">
        <!-- hide/show private -->
        <tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
    onclick="toggle_private();">hide&nbsp;private</a>]</span></td></tr>
      </table>
    </td>
  </tr>
</table>
<center><b>
 [ <a href="module-tree.html">Module Hierarchy</a>
 | <a href="class-tree.html">Class Hierarchy</a> ]
</b></center><br />
<h1 class="epydoc">Class Hierarchy</h1>
<ul class="nomargin-top">
    <li> <strong class="uidlink"><a href="simvoc.input.mod_ldif.LDIFParser-class.html">simvoc.input.mod_ldif.LDIFParser</a></strong>:
      <em class="summary">Base class for a LDIF parser.</em>
    <ul>
    <li> <strong class="uidlink"><a href="simvoc.input.mod_ldif.LDIFCopy-class.html">simvoc.input.mod_ldif.LDIFCopy</a></strong>:
      <em class="summary">Copy LDIF input to LDIF output containing all data retrieved via 
        URLs</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.input.mod_ldif.LDIFRecordList-class.html">simvoc.input.mod_ldif.LDIFRecordList</a></strong>:
      <em class="summary">Collect all records of LDIF input into a single list.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.input.egee_map_input.SiteParser-class.html">simvoc.input.egee_map_input.SiteParser</a></strong>:
      <em class="summary">Extension to the modified LDIF parser for extracting GRIF-LAL 
        Information System information (.lis files).</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.input.mod_ldif.LDIFWriter-class.html">simvoc.input.mod_ldif.LDIFWriter</a></strong>:
      <em class="summary">Write LDIF entry or change records to file object Copy LDIF input 
        to a file output object containing all data retrieved via URLs</em>
    </li>
    <li> <strong class="uidlink">object</strong>:
      <em class="summary">The most base type</em>
    <ul>
    <li> <strong class="uidlink">exceptions.BaseException</strong>:
      <em class="summary">Common base class for all exceptions</em>
    <ul>
    <li> <strong class="uidlink">exceptions.Exception</strong>:
      <em class="summary">Common base class for all non-exit exceptions.</em>
    <ul>
    <li> <strong class="uidlink"><a href="simvoc.core.common_reader.ReaderException-class.html">simvoc.core.common_reader.ReaderException</a></strong>:
      <em class="summary">Exception thrown when scan or parse errors occur in an input file</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.kernel.TimeTravelException-class.html">simvoc.core.kernel.TimeTravelException</a></strong>:
      <em class="summary">Exception raised when attempting to schedule an event in the past</em>
    </li>
    </ul>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.cluster_sim.Cluster-class.html">simvoc.core.cluster_sim.Cluster</a></strong>:
      <em class="summary">Clusters represent collections of computing resources (Machines) 
        and one or more schedulers (whose targets may overlap!).</em>
    <ul>
    <li> <strong class="uidlink"><a href="simvoc.core.voc_sim.VOC-class.html">simvoc.core.voc_sim.VOC</a></strong>:
      <em class="summary">Representation of the mechanism behind a Virtual Organization 
        Cluster.</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.common_reader.CommonReader-class.html">simvoc.core.common_reader.CommonReader</a></strong>:
      <em class="summary">Implements a common scanner and parser for the simulator input 
        formats written by simvoc.input.common_writer.</em>
    <ul>
    <li> <strong class="uidlink"><a href="simvoc.core.job_format_reader.JobReader-class.html">simvoc.core.job_format_reader.JobReader</a></strong>:
      <em class="summary">Mechanism for reading job trace files, creating Job objects from 
        the traces, and submitting the resulting jobs to the grid.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.map_format_reader.MapReader-class.html">simvoc.core.map_format_reader.MapReader</a></strong>:
      <em class="summary">Reader for dynamic grid map files, the textual format of which is 
        documented externally.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.vo_format_reader.VOReader-class.html">simvoc.core.vo_format_reader.VOReader</a></strong>:
      <em class="summary">Mechanism for reading Virtual Organization list files, which 
        specify the VOs presently valid on the grid, along with the target 
        and limit levels for VOCs dedicated to those VOs.</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.input.common_writer.CommonWriter-class.html">simvoc.input.common_writer.CommonWriter</a></strong>
    <ul>
    <li> <strong class="uidlink"><a href="simvoc.input.job_format_writer.JobWriter-class.html">simvoc.input.job_format_writer.JobWriter</a></strong>:
      <em class="summary">Mechanism for writing job trace files in the format required by the
        core job_format_reader module.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.input.map_format_writer.MapWriter-class.html">simvoc.input.map_format_writer.MapWriter</a></strong>:
      <em class="summary">Mechanism for writing dynamic grid map files readable by the core 
        map_format_reader module.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.input.vo_format_writer.VOWriter-class.html">simvoc.input.vo_format_writer.VOWriter</a></strong>:
      <em class="summary">Mechanism for writing VO list files in the format required by the 
        core vo_format_reader module.</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.input.data_input.Data-class.html">simvoc.input.data_input.Data</a></strong>:
      <em class="summary">Abstract base class for line-oriented input formats.</em>
    <ul>
    <li> <strong class="uidlink"><a href="simvoc.input.flat_data_input.FlatData-class.html">simvoc.input.flat_data_input.FlatData</a></strong>:
      <em class="summary">Mechanism for handling whitespace-delimited text input files.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.input.tabbed_data_input.TabbedData-class.html">simvoc.input.tabbed_data_input.TabbedData</a></strong>:
      <em class="summary">Mechanism for handling tab-delimited text input files.</em>
    <ul>
    <li> <strong class="uidlink"><a href="simvoc.input.egee_rtm_input.JobTrace-class.html">simvoc.input.egee_rtm_input.JobTrace</a></strong>:
      <em class="summary">Decoder for a single job trace file (a member of the outer tar 
        archive), buffering the trace in memory as a list of rows.</em>
    </li>
    </ul>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.storage.DataFile-class.html">simvoc.core.storage.DataFile</a></strong>:
      <em class="summary">Simulation of a data file or other large piece of data that must be
        transferred over a Wide Area Network</em>
    <ul>
    <li> <strong class="uidlink"><a href="simvoc.core.virtualization.VMImage-class.html">simvoc.core.virtualization.VMImage</a></strong>:
      <em class="summary">Simulated representation of a virtual machine image file, which is 
        typically a large file (10 binary gigabytes or larger) containing a
        disk image used to run the virtual machine.</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.input.egee_map_input.EGEEMap-class.html">simvoc.input.egee_map_input.EGEEMap</a></strong>:
      <em class="summary">Temporary data structure for processing EGEE map information.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.kernel.Event-class.html">simvoc.core.kernel.Event</a></strong>:
      <em class="summary">Abstract representation of simulator events.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.kernel.EventQueue-class.html">simvoc.core.kernel.EventQueue</a></strong>:
      <em class="summary">Simulator event queue, implemented using the Python heapq module.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.storage.FileCache-class.html">simvoc.core.storage.FileCache</a></strong>:
      <em class="summary">Transparent file cache: transfers a file if necessary; otherwise, 
        raises a callback event at the current simulator clock time to 
        notify client code that the simulated file is ready for simulated 
        use.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.storage.FileStore-class.html">simvoc.core.storage.FileStore</a></strong>:
      <em class="summary">Simulated file server, which stores DataFile instances using a 
        filename map.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.input_manager.FlexInput-class.html">simvoc.core.input_manager.FlexInput</a></strong>:
      <em class="summary">Flexible input handler class.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.grid_sim.Grid-class.html">simvoc.core.grid_sim.Grid</a></strong>:
      <em class="summary">Top-level grid simulation component: handles dynamic changes to the
        grid configuration as well as high-level job routing.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.job_model.Job-class.html">simvoc.core.job_model.Job</a></strong>:
      <em class="summary">Simulated representation of a regular job, which represents a 
        workload submitted by the user to run on a remote system.</em>
    <ul>
    <li> <strong class="uidlink"><a href="simvoc.core.job_model.PilotJob-class.html">simvoc.core.job_model.PilotJob</a></strong>:
      <em class="summary">A pilot job is a job that is submitted to the grid for the purpose 
        of leasing a remote resource.</em>
    <ul>
    <li> <strong class="uidlink"><a href="simvoc.core.voc_sim.VMPilot-class.html">simvoc.core.voc_sim.VMPilot</a></strong>:
      <em class="summary">Pilot job for leasing physical machines to run virtual machines.</em>
    </li>
    </ul>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.cluster_sim.Machine-class.html">simvoc.core.cluster_sim.Machine</a></strong>:
      <em class="summary">Simulated cluster node.</em>
    <ul>
    <li> <strong class="uidlink"><a href="simvoc.core.virtualization.VMHost-class.html">simvoc.core.virtualization.VMHost</a></strong>:
      <em class="summary">Represents a physical machine that has a Virtual Machine Monitor 
        installed and is capable of hosting virtual machines.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.virtualization.VirtualMachine-class.html">simvoc.core.virtualization.VirtualMachine</a></strong>:
      <em class="summary">Representation of a virtual machine (guest system) *instance*.</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.cluster_sim.MachineFactory-class.html">simvoc.core.cluster_sim.MachineFactory</a></strong>:
      <em class="summary">Factory class for producing new Machines based upon named profiles.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.kernel.Output-class.html">simvoc.core.kernel.Output</a></strong>:
      <em class="summary">Simulator output handler base class.</em>
    <ul>
    <li> <strong class="uidlink"><a href="simvoc.core.aggregator.Aggregator-class.html">simvoc.core.aggregator.Aggregator</a></strong>:
      <em class="summary">Aggregation output handler: aggregates some types of results, 
        creating AggregationResult objects that are sent to the downstream 
        output handler.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.db_output.DBOutput-class.html">simvoc.core.db_output.DBOutput</a></strong>:
      <em class="summary">Output handler that writes results directly to a database in 
        sqlite3 format.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.duplicate_filter.DuplicateFilter-class.html">simvoc.core.duplicate_filter.DuplicateFilter</a></strong>:
      <em class="summary">Output handler that prevents duplicate results from being 
        transmitted downstream.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.filter_results.ResultFilter-class.html">simvoc.core.filter_results.ResultFilter</a></strong>:
      <em class="summary">Output pipeline component that filters results by type.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.kernel.StreamOutput-class.html">simvoc.core.kernel.StreamOutput</a></strong>:
      <em class="summary">Writes output to a file-like object (default is sys.stdout).</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.results.Result-class.html">simvoc.core.results.Result</a></strong>:
      <em class="summary">Base class for simulation results.</em>
    <ul>
    <li> <strong class="uidlink"><a href="simvoc.core.results.AggregationResult-class.html">simvoc.core.results.AggregationResult</a></strong>:
      <em class="summary">Result type produced by the Aggregator component.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.results.DiscardResult-class.html">simvoc.core.results.DiscardResult</a></strong>:
      <em class="summary">Result created whenever a job is discarded without simulating its 
        execution.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.results.DiscrepancyResult-class.html">simvoc.core.results.DiscrepancyResult</a></strong>:
      <em class="summary">Result type produced whenever a job, or the simulated grid, must be
        changed due to invalid information contained in the job trace.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.results.FileRequestResult-class.html">simvoc.core.results.FileRequestResult</a></strong>:
      <em class="summary">Result that occurs whenever a file is requested from a FileCache</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.results.FileTransferResult-class.html">simvoc.core.results.FileTransferResult</a></strong>:
      <em class="summary">Result to record a transfer from a FileStore to a FileCache (in the
        event of a cache miss) or another other file transfer</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.results.JobResult-class.html">simvoc.core.results.JobResult</a></strong>:
      <em class="summary">Record of a Job, entered into the output pipeline whenever the job 
        completes or is discarded</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.results.JobStartResult-class.html">simvoc.core.results.JobStartResult</a></strong>:
      <em class="summary">Record dispatched when a job is started</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.results.JobSubmitResult-class.html">simvoc.core.results.JobSubmitResult</a></strong>:
      <em class="summary">Result that is sent when a job is successfully submitted</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.results.MetadataResult-class.html">simvoc.core.results.MetadataResult</a></strong>:
      <em class="summary">Result class for injecting metadata into the simulator output.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.results.SchedResult-class.html">simvoc.core.results.SchedResult</a></strong>:
      <em class="summary">Scheduling result record, which encodes the scheduler status 
        information both for the entire scheduler and for each Virtual 
        Organization seen by the scheduler.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.results.SiteRejectionResult-class.html">simvoc.core.results.SiteRejectionResult</a></strong>:
      <em class="summary">Result that records the rejection of a site at creation time, 
        specifying the site name and reason for rejection.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.results.SiteResult-class.html">simvoc.core.results.SiteResult</a></strong>:
      <em class="summary">Result that records the presence or absence of a site on the grid.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.results.TraceResult-class.html">simvoc.core.results.TraceResult</a></strong>:
      <em class="summary">Result produced by the kernel_trace function in this module, to 
        record the simulation trace as part of the output data</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.results.VMPilotResult-class.html">simvoc.core.results.VMPilotResult</a></strong>:
      <em class="summary">Result produced by Virtual Machine pilot jobs whenever the pilot 
        state changes</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.results.VMResult-class.html">simvoc.core.results.VMResult</a></strong>:
      <em class="summary">Result produced whenever a Virtual Machine changes state</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.results.VOCResult-class.html">simvoc.core.results.VOCResult</a></strong>:
      <em class="summary">Result used for periodic updates on the state of a Virtual 
        Organization Cluster.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.results.VOResult-class.html">simvoc.core.results.VOResult</a></strong>:
      <em class="summary">Result that records the observation of a single Virtual 
        Organization in the trace data.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.results.WatchdogResult-class.html">simvoc.core.results.WatchdogResult</a></strong>:
      <em class="summary">Result periodically produced to monitor the state of the watchdog 
        component</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.scheduler.Scheduler-class.html">simvoc.core.scheduler.Scheduler</a></strong>:
      <em class="summary">Generic job scheduler, which starts jobs instantly if nodes are 
        available.</em>
    <ul>
    <li> <strong class="uidlink"><a href="simvoc.core.condor_sim.Condor-class.html">simvoc.core.condor_sim.Condor</a></strong>:
      <em class="summary">Simulation of the Condor interval scheduler (negotiation process 
        only).</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.control_scheduler.ControlScheduler-class.html">simvoc.core.control_scheduler.ControlScheduler</a></strong>:
      <em class="summary">Scheduler replacement that uses observed queue delays to replicate 
        the behavior of the actual grid.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.metascheduler.Metascheduler-class.html">simvoc.core.metascheduler.Metascheduler</a></strong>:
      <em class="summary">Simple metascheduler: sends jobs to the site with the lowest 
        projected waiting time, based on a ranking algorithm.</em>
    </li>
    </ul>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.kernel.Simulator-class.html">simvoc.core.kernel.Simulator</a></strong>:
      <em class="summary">Core Simulator class, which provides an event-driven discrete event
        simulation.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.ce_sim.Site-class.html">simvoc.core.ce_sim.Site</a></strong>:
      <em class="summary">A Site is a named interface to a single scheduler on a cluster.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.virtualization.VMMonitor-class.html">simvoc.core.virtualization.VMMonitor</a></strong>:
      <em class="summary">Representation of a Virtual Machine Monitor (VMM) or hypervisor, 
        which runs on a simulated physical host and manages (starts and 
        stops) simulated virtual machines.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.watchdog_sim.WatchRecord-class.html">simvoc.core.watchdog_sim.WatchRecord</a></strong>:
      <em class="summary">Watchdog record for storing information about each Virtual 
        Organization known to the watchdog.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.watchdog_sim.Watchdog-class.html">simvoc.core.watchdog_sim.Watchdog</a></strong>:
      <em class="summary">Naive greedy watchdog implementation.</em>
    </li>
    <li> <strong class="uidlink">dict</strong>:
      <em class="summary">dict() -&gt; new empty dictionary.</em>
    <ul>
    <li> <strong class="uidlink"><a href="simvoc.core.vo_format_reader.VO-class.html">simvoc.core.vo_format_reader.VO</a></strong>:
      <em class="summary">Representation of a single Virtual Organization, along with any 
        data about the VO (such as target and limit levels for 
        corresponding VOCs) contained in the VO input file.</em>
    </li>
    <li> <strong class="uidlink"><a href="simvoc.core.vo_format_reader.VOCollection-class.html">simvoc.core.vo_format_reader.VOCollection</a></strong>:
      <em class="summary">Collection of VO objects for use with the simulator.</em>
    <ul>
    <li> <strong class="uidlink"><a href="simvoc.core.voc_sim.AutoVOC-class.html">simvoc.core.voc_sim.AutoVOC</a></strong>:
      <em class="summary">Replacement VOCollection object that automatically creates a VOC 
        and corresponding grid CE for each VO seen in an input trace.</em>
    </li>
    </ul>
    </li>
    </ul>
    </li>
    </ul>
    </li>
</ul>
<!-- ==================== NAVIGATION BAR ==================== -->
<table class="navbar" border="0" width="100%" cellpadding="0"
       bgcolor="#a0c0ff" cellspacing="0">
  <tr valign="middle">
  <!-- Home link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="simvoc-module.html">Home</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Tree link -->
      <th bgcolor="#70b0f0" class="navbar-select"
          >&nbsp;&nbsp;&nbsp;Trees&nbsp;&nbsp;&nbsp;</th>

  <!-- Index link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="identifier-index.html">Indices</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Help link -->
      <th>&nbsp;&nbsp;&nbsp;<a
        href="help.html">Help</a>&nbsp;&nbsp;&nbsp;</th>

  <!-- Project homepage -->
      <th class="navbar" align="right" width="100%">
        <table border="0" cellpadding="0" cellspacing="0">
          <tr><th class="navbar" align="center"
            >SimVOC</th>
          </tr></table></th>
  </tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
  <tr>
    <td align="left" class="footer">
    Generated by Epydoc 3.0 on Fri Oct 23 11:04:27 2009
    </td>
    <td align="right" class="footer">
      <a target="mainFrame" href="http://epydoc.sourceforge.net"
        >http://epydoc.sourceforge.net</a>
    </td>
  </tr>
</table>

<script type="text/javascript">
  <!--
  // Private objects are initially displayed (because if
  // javascript is turned off then we want them to be
  // visible); but by default, we want to hide them.  So hide
  // them unless we have a cookie that says to show them.
  checkCookie();
  // -->
</script>
</body>
</html>
